package cn.zlg.common.datadump.service;

import cn.zlg.common.datadump.annotation.DataDumpEntity;
import cn.zlg.common.datadump.bean.DataDumpDef;

/**
 * 数据导入导出注册中心，调用导出接口时，通过该中心来查找导入导出配置
 */
public interface DataDumpDefRegistry {

    void register(Class defClass, DataDumpEntity annotation) throws IllegalAccessException, InstantiationException;

    DataDumpDef getDefinitionByHandler(String handler);

    /**
     * 根据QueryDsl的类型，查找该类型有无注册导入导出
     @param clazz Q开头的类
     * @return
     */
    DataDumpEntity findAnnotationByQEntityType(Class clazz);

    void clear();
}
